<?php
	include_once('clases/Settings.php');
	include_once('clases/Util.php');
	include_once('clases/View.php');
	include_once('config/configuracion_doctrine.php');
		
	session_start();
	
	$settings=Settings::getInstance('config/configuracion.ini');
	//error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
	define('ROOT',$settings->APLICACION['dir_aplicacion']);
	define('DIR_VISTAS',$settings->APLICACION['dir_vistas']);
	define('DIR_CSS',$settings->APLICACION['dir_css']);
	define('DIR_JS',$settings->APLICACION['dir_js']);
	define('DIR_CONTROLADORES',$settings->APLICACION['dir_controladores']);
	define('DIR_MODELOS',$settings->APLICACION['dir_modelos']);
	define('DIR_IMAGENES',$settings->APLICACION['dir_imagenes']);
	define('DIR_MULTIMEDIA',$settings->APLICACION['dir_multimedia']);
	define('URL_FOTOS',$settings->APLICACION['url_fotos']);
	define('URL_APLICACION',$settings->APLICACION['url_aplicacion']);
	define('DIR_PORTADA_EVENTOS',$settings->APLICACION['dir_portada_eventos']);
	define('DIR_BANNERS',$settings->APLICACION['dir_banners']);
	define('DIR_ARTICULOS',$settings->APLICACION['dir_articulos']);
	define('DIR_REVISTAS',$settings->APLICACION['dir_revistas']);
	
	$VariablesGet = $settings->APLICACION['urls_amigables']?Util::GetVariables($_GET['route']):$_GET;
	
	if( (!$settings->APLICACION['urls_amigables']?!isset($VariablesGet['c']) && !isset($VariablesGet['m']):!isset($VariablesGet[0]) && !isset($VariablesGet[1]))){
				
		include_once("controladores/ControladorInstituto.php");
		ControladorInstituto::Index();
		
	}elseif (isset($VariablesGet['c']) || isset($VariablesGet[0])) {
		$clase='Controlador'.( Util::ConvertirNombre( isset($VariablesGet['c'])?$VariablesGet['c']:$VariablesGet[0]) );
		if(is_file('controladores/'.$clase.'.php')){
			include_once('controladores/'.$clase.'.php');
			$controlador=& new $clase();
			if(isset($VariablesGet['m']) || isset($VariablesGet[1])){
				$metodo=isset($VariablesGet['m'])?$VariablesGet['m']:$VariablesGet[1];
			}else{
				$metodo='index';
			}
			
			$parametros=array();
			
			if(count($VariablesGet)>2){
				if($settings->APLICACION['urls_amigables']){
					for ($i=2;$i<count($VariablesGet);$i++)
						$parametros[]=$VariablesGet[$i];
				}else {
					foreach ($VariablesGet as $etiqueta=>$valor){
						if($etiqueta!='m' && $etiqueta!='c')
							$parametros[]=$valor;
					}
				}
			}
			
			$metodo=Util::ConvertirNombre($metodo);
			if(method_exists($controlador,$metodo)){
				//$controlador->$metodo($parametros); 
				call_user_func_array(array(&$controlador,$metodo),$parametros);
			}else 
				die('El Metodo <b>"'.$metodo.'"</b> no esta implementado en el Controlador <b>"'.$clase.'"</b>');	
		}	
		else 
			die('Controlador <b>"'.$clase.'"</b> no esta implementado');	
		
	}elseif (isset($_GET['m'])){
		die('Falta definir el Controlador');
	}	
?>
